2d4440ff13f9510a2dbfbe6f4205fa10cd0f4d8c,epcis/src/main/java/org/oliot/epcis/serde/mongodb/AggregationEventReadConverter.java,AggregationEventReadConverter,convert,#DBObject#,65

Before Change


			// Extension Field
			if (dbObject.get("extension") != null) {
				AggregationEventExtensionType aeet = new AggregationEventExtensionType();
				BasicDBObject extObject = (BasicDBObject) dbObject
						.get("extension");
				// Quantity
				if (extObject.get("childQuantityList") != null) {
					QuantityListType qlt = new QuantityListType();
					List<QuantityElementType> qetList = new ArrayList<QuantityElementType>();
					BasicDBList quantityDBList = (BasicDBList) extObject
							.get("childQuantityList");
					for (int i = 0; i < quantityDBList.size(); i++) {
						QuantityElementType qet = new QuantityElementType();
						BasicDBObject quantityDBObject = (BasicDBObject) quantityDBList
								.get(i);
						Object epcClassObject = quantityDBObject
								.get("epcClass");
						Object quantity = quantityDBObject.get("quantity");
						Object uom = quantityDBObject.get("uom");
						if (epcClassObject != null) {
							qet.setEpcClass(epcClassObject.toString());
							if (quantity != null) {
								double quantityDouble = (double) quantity;
								qet.setQuantity((float) quantityDouble);
							}
							if (uom != null)
								qet.setUom(uom.toString());
							qetList.add(qet);
						}
					}
					qlt.setQuantityElement(qetList);
					aeet.setChildQuantityList(qlt);
				}
				// SourceList
				if (extObject.get("sourceList") != null) {
					// Source Dest Type : Key / Value
					SourceListType slt = new SourceListType();
					List<SourceDestType> sdtList = new ArrayList<SourceDestType>();
					BasicDBList sourceDBList = (BasicDBList) extObject
							.get("sourceList");
					for (int i = 0; i < sourceDBList.size(); i++) {
						BasicDBObject sdObject = (BasicDBObject) sourceDBList
								.get(i);
						// DBObject, key and value
						SourceDestType sdt = new SourceDestType();
						Iterator<String> keyIter = sdObject.keySet().iterator();
						// at most one bizTran
						if (keyIter.hasNext()) {
							String key = keyIter.next();
							String value = sdObject.getString(key);
							if (key != null && value != null) {
								sdt.setType(key);
								sdt.setValue(value);
							}
						}
						if (sdt != null)
							sdtList.add(sdt);
					}
					slt.setSource(sdtList);
					aeet.setSourceList(slt);
				}
				// DestinationList
				if (extObject.get("destinationList") != null) {
					// Source Dest Type : Key / Value
					DestinationListType dlt = new DestinationListType();
					List<SourceDestType> sdtList = new ArrayList<SourceDestType>();
					BasicDBList destinationDBList = (BasicDBList) extObject
							.get("destinationList");
					for (int i = 0; i < destinationDBList.size(); i++) {
						BasicDBObject sdObject = (BasicDBObject) destinationDBList
								.get(i);
						// DBObject, key and value
						SourceDestType sdt = new SourceDestType();
						Iterator<String> keyIter = sdObject.keySet().iterator();
						// at most one bizTran
						if (keyIter.hasNext()) {
							String key = keyIter.next();
							String value = sdObject.getString(key);
							if (key != null && value != null) {
								sdt.setType(key);
								sdt.setValue(value);
							}
						}
						if (sdt != null)
							sdtList.add(sdt);
					}
					dlt.setDestination(sdtList);
					aeet.setDestinationList(dlt);
				}
				// extension2
				if (extObject.get("extension") != null) {
					AggregationEventExtension2Type aee2t = new AggregationEventExtension2Type();
					BasicDBObject extension = (BasicDBObject) extObject
							.get("extension");
					aee2t = putAggregationExtension(aee2t, extension);
					aeet.setExtension(aee2t);
				}

After Change


			// Extension Field
			if (dbObject.get("extension") != null) {
				AggregationEventExtensionType aeet = new AggregationEventExtensionType();
				BsonDocument extObject = dbObject.getDocument("extension");
				// Quantity
				if (extObject.get("childQuantityList") != null) {
					QuantityListType qlt = new QuantityListType();
					List<QuantityElementType> qetList = new ArrayList<QuantityElementType>();
					BsonArray quantityDBList = extObject.getArray("childQuantityList");
					for (int i = 0; i < quantityDBList.size(); i++) {
						QuantityElementType qet = new QuantityElementType();
						BsonDocument quantityDBObject = quantityDBList.get(i).asDocument();
						BsonValue epcClassObject = quantityDBObject.get("epcClass");
						BsonValue quantity = quantityDBObject.get("quantity");
						BsonValue uom = quantityDBObject.get("uom");
						if (epcClassObject != null) {
							qet.setEpcClass(epcClassObject.asString().getValue());
							if (quantity != null) {
								double quantityDouble = quantity.asDouble().getValue();
								qet.setQuantity((float) quantityDouble);
							}
							if (uom != null)
								qet.setUom(uom.asString().getValue());
							qetList.add(qet);
						}
					}
					qlt.setQuantityElement(qetList);
					aeet.setChildQuantityList(qlt);
				}
				// SourceList
				if (extObject.get("sourceList") != null) {
					// Source Dest Type : Key / Value
					SourceListType slt = new SourceListType();
					List<SourceDestType> sdtList = new ArrayList<SourceDestType>();
					BsonArray sourceDBList = extObject.getArray("sourceList");
					for (int i = 0; i < sourceDBList.size(); i++) {
						BsonDocument sdObject = sourceDBList.get(i).asDocument();
						// DBObject, key and value
						SourceDestType sdt = new SourceDestType();
						Iterator<String> keyIter = sdObject.keySet().iterator();
						// at most one bizTran
						if (keyIter.hasNext()) {
							String key = keyIter.next();
							String value = sdObject.getString(key).getValue();
							if (key != null && value != null) {
								sdt.setType(key);
								sdt.setValue(value);
							}
						}
						if (sdt != null)
							sdtList.add(sdt);
					}
					slt.setSource(sdtList);
					aeet.setSourceList(slt);
				}
				// DestinationList
				if (extObject.get("destinationList") != null) {
					// Source Dest Type : Key / Value
					DestinationListType dlt = new DestinationListType();
					List<SourceDestType> sdtList = new ArrayList<SourceDestType>();
					BsonArray destinationDBList = extObject.getArray("destinationList");
					for (int i = 0; i < destinationDBList.size(); i++) {
						BsonDocument sdObject = destinationDBList.get(i).asDocument();
						// DBObject, key and value
						SourceDestType sdt = new SourceDestType();
						Iterator<String> keyIter = sdObject.keySet().iterator();
						// at most one bizTran
						if (keyIter.hasNext()) {
							String key = keyIter.next();
							String value = sdObject.getString(key).getValue();
							if (key != null && value != null) {
								sdt.setType(key);
								sdt.setValue(value);
							}
						}
						if (sdt != null)
							sdtList.add(sdt);
					}
					dlt.setDestination(sdtList);
					aeet.setDestinationList(dlt);
				}
				// extension2
				if (extObject.get("extension") != null) {
					AggregationEventExtension2Type aee2t = new AggregationEventExtension2Type();
					BsonDocument extension = extObject.getDocument("extension");
					aee2t = putAggregationExtension(aee2t, extension);
					aeet.setExtension(aee2t);
				}